#include "Hebras.h" // o como se llame la función principal

int main( int argc, char**argv )
{

  int opc;
  bool a = false;
  bool b = false;
  bool c = false;
  bool d = false;
  bool e = false;
  bool f = false;
  int tamMatriz = 0;  // en el pdf creo que se equivocó el profe y que tamMatriz no es un archivo sino que solo un int que dice el tamaño
  char *fileinM = NULL;
  char *fileinC = NULL;
  char *fileinO= NULL;
  char *fileout= NULL;
  char *hebras= NULL;

  while((opc = getopt(argc, argv, "n:h:m:c:o:s:"))!= -1){
	    
		switch(opc){

		case'n':
		tamMatriz=optarg;
		break;

		case'h':
		hebras=optarg;
		break;

		case'm':
		fileinM=optarg;
		break;

		case'c':
		fileinC=optarg;
		break;

		case'o':
		fileinO=optarg;
		break;
		
		case's':
		fileout=optarg;
		break;
		
		case '?':
		cout<<"Verifique que haya ingresado las opciones correctas"<<endl;
		return 1;
		
		default:
		abort ();
		}
		
	}
   
   if(hebras == NULL){
	   cout<<"Cantidad de hebras no valida (-n numero)"<<endl;
	   a=true;
   }
 /*  for(int i = 0; i< strlen(hebras); i++){
	   if(!isdigit(hebras[i])){
			cout<<"Cantidad de hebras no valida (-n numero)"<<endl;
			a=true;
		} */
   }
   if(tamMatriz == NULL){
	   cout<<"No se ingreso número válido para tamaño matriz (-m numero)"<<endl;
	   b=true;
   }
   if(fileinM == NULL){
	   cout<<"No se ingreso un archivo de Matriz (-c archivo)"<<endl;
	   c=true;
   }
   if(fileinC == NULL){
	   cout<<"No se ingreso un archivo de consultas (-c archivo)"<<endl;
	   d=true;
   }
   if(fileinO == NULL){
	   cout<<"No se ingreso un archivo de operaciones (-c archivo)"<<endl;
	   e=true;
   }
   if(fileout == NULL){
	   cout<<"No se ingreso archivo de salida (-o archivo)"<<endl;
	   f=true;
   }
   if(a==false && b==false && c==false && d==false && e==false && f==false){
	HP* hp = new HP( );
	hp->Hebras(tamMatriz, hebras, fileinM, fileinC, fileinO, fileout);
	cout<<"Ejecucion terminada."<<endl;
   }

  return 0;
}
